iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
Software Development

從零開始的Python練成記系列 第 12

[Day 12]小型題材:Game "1A2B" in Python

  • 分享至 

  • xImage
  •  

看到這個標題想必大家應該都不陌生,對,就是那個曾經風靡一時的電視節目在進行的獎金挑戰單元"1A2B",避免有些人不清楚這個遊戲的玩法,那就在這裡簡單說明一下好了:

一開始先產生4位數的「終極密碼」(0~9且不重複),玩家要在四次之內猜到正確的密碼排序

每次玩家在輸入自己的答案之後,會得到有關自己答案跟終極密碼的相關情報,位置/數字皆正確會以"A"表示,數字正確但位置錯誤會以"B"表示

示範(終極密碼:4237) 第一次:4971(1A1B,4),第二次:4132(2A1B,4,3),第三次:4138(2A,4,3),第四次:4237(4A,4,2,3,7)

簡單說明一下可能會用到的功能:Random(產生終極密碼),for(針對玩家的答案逐一與終極密碼進行比較),while(簡單紀錄遊戲回合的功能),input(紀錄玩家輸入的答案),def(建立方法,分門別類用)

下面就是程式碼的部分:

from random import randint
ranlist = []
def generate(lst):
    while len(lst) < 4:
        lst.append(randint(1,9))
        if len(lst) > 1:
            x = 0
            while x < len(lst)-1:
                if lst[x] == lst[len(lst)-1]:
                    del lst[len(lst)-1]
                else:
                    x += 1
    final_ans = ""
    for i in range(0,len(lst)):
        final_ans = final_ans + str(lst[i])
    return final_ans
def gamer():
    print("歡迎來到1A2B,密碼已經產生,請在四次之內猜中正確答案")
    finans = generate(ranlist)
    starter = True
    counter = 1
    while starter:
        if counter == 4:
            print("Game Over!!")
            starter = False
        while counter < 5:
            result = 0
            answer = input("請輸入你的答案:")
            for i in range(0,len(finans)):
                for j in range(0,len(finans)):
                    if answer[i] == finans[j]:
                        if i == j:
                            result += 10
                        else:
                            result += 1
            print(str(int(result/10)) + 'A' + str(result%10) + 'B')
            counter += 1
            if result == 40:
                print("恭喜你,答案就是" + str(finans))
                starter = False
gamer()

然後是實機測試的紀錄:

歡迎來到1A2B,密碼已經產生,請在四次之內猜中正確答案
請輸入你的答案:9231
1A0B
請輸入你的答案:9756
1A1B
請輸入你的答案:7684
2A0B
請輸入你的答案:9584
4A0B
恭喜你,答案就是9584
Process finished with exit code 0

上一篇
[Day 11]小型題材:Bubble Sort in Python
下一篇
[Day 13]不知道這功能肯定是我見識狹隘:二進位運算
系列文
從零開始的Python練成記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言